package com.kylin.user.api.web.facade;

import com.kylin.shared.common.ResponseWrapper;
import com.kylin.user.api.dto.req.UpdateUserInfoReqDTO;
import com.kylin.user.api.dto.req.UpdateUserPhoneReqDTO;
import com.kylin.user.api.dto.resp.UserInfoRespDTO;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

/**
 * 认证相关接口
 * @author Damon S.
 * @version v1.0.1
 * @date 2020年11月14日 14:44
 */
@RequestMapping(value = "/api_v1/oauth", produces = MediaType.APPLICATION_JSON_VALUE)
public interface AuthenticationFacade {

    /**
     * 微信登录接口
     * @param code 微信code
     * @return 返回登录用户信息
     */
    @GetMapping("/wechat/login/{code}")
    ResponseWrapper<UserInfoRespDTO> wxLogin(
            @PathVariable("code")String code
    );

    /**
     * 更新用户详情信息
     * @param req 需要更新的用户信息
     * @return 返回更新是否成功
     */
    @PutMapping("/wechat/users")
    ResponseWrapper<Boolean> updateUserDetail(
            @RequestBody @Validated UpdateUserInfoReqDTO req
    );

    /**
     * 更新用户电话信息
     * @param req 用户电话信息
     * @return 返回电话
     */
    @PutMapping("/wechat/users/phone")
    ResponseWrapper<String> updatePhoneNo(
            @RequestBody @Validated UpdateUserPhoneReqDTO req
    );
}
